package com.zdcp.system.service.impl;

import java.util.Date;
import java.util.List;

import org.beetl.sql.core.engine.PageQuery;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.zdcp.system.bean.SysDictData;
import com.zdcp.system.mapper.SysDictDataMapperDao;
import com.zdcp.system.service.ISysDictDataService;

/**
 * 字典 业务层实现
 * 
 * @author yweijian
 * @date 2019年8月16日
 * @version 1.0
 */
@Service
public class SysDictDataServiceImpl implements ISysDictDataService {
	@Autowired
	private SysDictDataMapperDao dictDataMapper;

	/**
	 * 根据条件分页查询字典数据
	 * 
	 * @param dictData
	 *            字典数据信息
	 * @return 字典数据集合信息
	 */
	@Override
	public List<SysDictData> selectDictDataList(PageQuery<SysDictData> query) {
		dictDataMapper.selectDictDataList(query);
		return query.getList();
	}
	
	/**
	 * 根据条件查询字典数据
	 * 
	 * @param dictData
	 *            字典数据信息
	 * @return 字典数据集合信息
	 */
	@Override
	public List<SysDictData> selectDictDataList(SysDictData dictData) {
		return dictDataMapper.selectDictDataList(dictData);
	}

	/**
	 * 根据字典类型查询字典数据
	 * 
	 * @param dictType
	 *            字典类型
	 * @return 字典数据集合信息
	 */
	@Override
	public List<SysDictData> selectDictDataByType(String dictType) {
		return dictDataMapper.selectDictDataByType(dictType);
	}

	/**
	 * 根据字典类型和字典键值查询字典数据信息
	 * 
	 * @param dictType
	 *            字典类型
	 * @param dictValue
	 *            字典键值
	 * @return 字典标签
	 */
	@Override
	public String selectDictLabel(String dictType, String dictValue) {
		return dictDataMapper.selectDictLabel(dictType, dictValue);
	}

	/**
	 * 根据字典数据ID查询信息
	 * 
	 * @param dictCode
	 *            字典数据ID
	 * @return 字典数据
	 */
	@Override
	public SysDictData selectDictDataById(Long dictCode) {
		return dictDataMapper.selectDictDataById(dictCode);
	}

	/**
	 * 通过字典ID删除字典数据信息
	 * 
	 * @param dictCode
	 *            字典数据ID
	 * @return 结果
	 */
	@Override
	@Transactional
	public int deleteDictDataById(Long dictCode) {
		return dictDataMapper.deleteDictDataById(dictCode);
	}

	/**
	 * 批量删除字典数据
	 * 
	 * @param ids
	 *            需要删除的数据
	 * @return 结果
	 */
	@Override
	@Transactional
	public int deleteDictDataByIds(String[] ids) {
		return dictDataMapper.deleteDictDataByIds(ids);
	}

	/**
	 * 新增保存字典数据信息
	 * 
	 * @param dictData
	 *            字典数据信息
	 * @return 结果
	 */
	@Override
	@Transactional
	public int insertDictData(SysDictData dictData) {
		dictData.setCreateTime(new Date());
		dictDataMapper.insert(dictData);
		return 1;
	}

	/**
	 * 修改保存字典数据信息
	 * 
	 * @param dictData
	 *            字典数据信息
	 * @return 结果
	 */
	@Override
	@Transactional
	public int updateDictData(SysDictData dictData) {
		dictData.setUpdateTime(new Date());
		dictDataMapper.updateTemplateById(dictData);
		return 1;
	}
}
